Database Tutorials Data Fetching এবং Filtering Techniques গাইড ও নোট

385

SQLAlchemy তে ডেটা fetching এবং filtering অত্যন্ত গুরুত্বপূর্ণ প্রক্রিয়া, যা ডেটাবেস থেকে ডেটা সংগ্রহ এবং তার উপরে নির্দিষ্ট শর্তাবলী প্রয়োগ করতে ব্যবহৃত হয়। SQLAlchemy এর ORM (Object Relational Mapping) এবং Core উভয়ের মাধ্যমে ডেটা fetch এবং filter করা যায়। এখানে ORM এর মাধ্যমে ডেটা fetching এবং filtering করার প্রক্রিয়া আলোচনা করা হবে।


Data Fetching Techniques

SQLAlchemy তে ডেটা fetch করার জন্য querying করা হয়, যা ডেটাবেস থেকে ডেটা নির্বাচনের জন্য ব্যবহৃত হয়। এখানে SQLAlchemy ORM ব্যবহার করে ডেটা fetch করার কিছু মূল পদ্ধতি তুলে ধরা হলো।


All() Method:

all() মেথড ব্যবহার করে সমস্ত রেকর্ড একবারে fetch করা যায়।

# সব রেকর্ড fetch করা
users = session.query(User).all()
for user in users:
    print(user.name, user.age)

এখানে, session.query(User).all() সমস্ত User টেবিলের রেকর্ড সংগ্রহ করবে।


First() Method:

first() মেথড ব্যবহার করে প্রথম রেকর্ডটি fetch করা যায়।

# প্রথম রেকর্ড fetch করা
first_user = session.query(User).first()
print(first_user.name, first_user.age)

এখানে, first() শুধুমাত্র প্রথম রেকর্ডটি রিটার্ন করবে এবং যদি কোনো রেকর্ড না থাকে তবে None রিটার্ন করবে।


Filter() Method:

filter() মেথড ব্যবহার করে নির্দিষ্ট শর্তে ডেটা filter করা যায়।

# বয়স ২৫ এর বেশি ইউজার ফিল্টার করা
users = session.query(User).filter(User.age > 25).all()
for user in users:
    print(user.name, user.age)

এখানে, filter(User.age > 25) শর্তে বয়স ২৫ এর বেশি সমস্ত ইউজারদের রেকর্ড fetch করবে।


Limit() Method:

limit() মেথড ব্যবহার করে একটি নির্দিষ্ট সংখ্যক রেকর্ড fetch করা যায়।

# প্রথম ৫টি ইউজার fetch করা
users = session.query(User).limit(5).all()
for user in users:
    print(user.name, user.age)

এখানে, limit(5) শুধুমাত্র প্রথম ৫টি রেকর্ড রিটার্ন করবে।


Order By Method:

order_by() মেথড ব্যবহার করে ডেটাকে নির্দিষ্ট একটি কলামের উপর ভিত্তি করে সাজানো (ascending বা descending) যায়।

# বয়স অনুযায়ী সাজানো
users = session.query(User).order_by(User.age).all()
for user in users:
    print(user.name, user.age)

এখানে, order_by(User.age) বয়স অনুযায়ী ডেটা সাজাবে। ডিফল্টভাবে এটি ascending অর্ডারে সাজায়, তবে যদি descending অর্ডার চান, তবে User.age.desc() ব্যবহার করতে হবে।


Data Filtering Techniques

SQLAlchemy তে ডেটা filter করার জন্য বেশ কয়েকটি কৌশল রয়েছে। এর মাধ্যমে আপনি আপনার ডেটাবেস কোয়েরি থেকে নির্দিষ্ট ডেটা বের করতে পারেন।


Filter By Method:

filter_by() মেথড ব্যবহার করে সহজ শর্তে ডেটা filter করা যায়। এটি SQLAlchemy এর ORM এর একটি সহজ পদ্ধতি।

# নাম 'John' এবং বয়স ২৫ এর ইউজার ফিল্টার করা
user = session.query(User).filter_by(name='John', age=25).first()
print(user.name, user.age)

এখানে, filter_by() ব্যবহার করে নাম এবং বয়সের ভিত্তিতে ইউজার filter করা হয়েছে। এটি শুধুমাত্র সঠিক মানগুলির সাথে রেকর্ড filter করে।


Multiple Filters:

একাধিক শর্ত ব্যবহার করে ডেটা filter করার জন্য filter() মেথডের মধ্যে একাধিক শর্ত দেওয়া যায়।

# বয়স ২৫ থেকে ৩৫ এর মধ্যে এবং নাম 'John' না হওয়া ইউজার filter করা
users = session.query(User).filter(User.age >= 25, User.age <= 35, User.name != 'John').all()
for user in users:
    print(user.name, user.age)

এখানে, বয়সের শর্তের সাথে সাথে নামের শর্তও যোগ করা হয়েছে।


Using AND, OR, and NOT:

SQLAlchemy তে AND, OR, এবং NOT ব্যবহার করে আরও জটিল ফিল্টার শর্ত তৈরি করা যায়।

from sqlalchemy import or_

# বয়স ২৫ এর বেশি অথবা নাম 'Alice'
users = session.query(User).filter(or_(User.age > 25, User.name == 'Alice')).all()
for user in users:
    print(user.name, user.age)

এখানে, or_() এর মাধ্যমে বয়স ২৫ এর বেশি অথবা নাম 'Alice' হওয়া ইউজারদের filter করা হয়েছে।


Like Method:

like() মেথড ব্যবহার করে pattern matching করা যায় (যেমন SQL এর LIKE কিউরির মতো)।

# নামের মধ্যে 'Jo' থাকা ইউজার filter করা
users = session.query(User).filter(User.name.like('%Jo%')).all()
for user in users:
    print(user.name, user.age)

এখানে, %Jo% দ্বারা যেসব নামের মধ্যে "Jo" থাকবে, সেগুলি filter করা হবে।


Combining Filters with Limit and Order

SQLAlchemy তে একাধিক filtering, ordering, এবং limiting একসাথে ব্যবহার করা যায়। উদাহরণস্বরূপ:

# বয়স ২৫ এর বেশি, নাম 'Alice' না, এবং নাম অনুযায়ী সাজানো, প্রথম ১০ জন ইউজার fetch করা
users = session.query(User).filter(User.age > 25).filter(User.name != 'Alice').order_by(User.name).limit(10).all()
for user in users:
    print(user.name, user.age)

এখানে, filter(), order_by(), এবং limit() একত্রে ব্যবহার করা হয়েছে।


সারাংশ

SQLAlchemy তে data fetching এবং filtering অত্যন্ত শক্তিশালী এবং নমনীয় পদ্ধতি। all(), first(), filter(), order_by(), limit() ইত্যাদি মেথড ব্যবহার করে ডেটাবেস থেকে ডেটা সহজে fetch করা যায় এবং বিভিন্ন শর্তে ডেটা filter করা সম্ভব। SQLAlchemy তে filtering techniques যেমন filter_by(), and_(), or_(), like() ব্যবহার করে আপনি আরো সুনির্দিষ্ট ডেটা নির্বাচন করতে পারেন।

Content added By
Promotion

Are you sure to start over?

Loading...